/**
 1. 调用函数有两种方式：
     （1）直接使用函数调用
     （2）使用指向函数的指针简介调用
 
 2. 指向函数的指针的声明
 （1）声明的语法
     指向函数的指针并不是任意的函数都可以指向，要求指向的函数的返回值类型和参数描述必须要与指针描述的一样
     
     返回值类型 （*指针名）（【参数列表】）
     int  (*pFunction)(int num1， int num2);
     表示，申明1个指向函数的指针，名字叫做pFunction。这个指针只能指向返回值为int 类型 并且有两个整形的参数的函数。
 
 （2）初始化
     1）取到符合条件的函数的地址
        - 函数的名称就代表函数的地址
     2）将地址赋值给指针变量
 
 （3）调用
     void (*pFunc)() = test;// pFunc指针指向了test函数
 
     1）pFunc();
     2）(*pFunc)();
 */

#import <Foundation/Foundation.h>


void test() {
    printf("hahah\n");
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        void (*pFunc)() = test;// pFunc指针指向了test函数
        
        // 调用
        pFunc();
        (*pFunc)();
    }
    return 0;
}
